<?php
/**
 +------------------------------------------------------------------------------
 * memcache类封装
 +------------------------------------------------------------------------------
 * @Version   1.2
 * @Author    WangXian
 * @FileName mymemcache.class.php 
 * @Creation date 2010-9-17
 * @Modified date 2010-9-17 13:46:34
 +------------------------------------------------------------------------------
 */
class mymemcache
{
	private $connection;
	
	function __construct() 
	{
		$this->connection = new MemCache;
	}
	/**
	 * 写缓存
	 * @param $key 缓存名称
	 * @param $data 缓存内容
	 * @param $expire 缓存有效期
	 */
	function store($key,$data,$expire=0)
	{
		return $this->connection->set($key,$data,MEMCACHE_COMPRESSED,$expire);
	}
	
	/**
	 * 重写缓存
	 * @param string $key 缓存名称
	 * @param mixed $data 缓存内容
	 * @param int $expire 缓存有效期
	 */
	function replace($key,$data,$expire=0)
	{
		return $this->connection->replace($key,$data,MEMCACHE_COMPRESSED,$expire);
	}
	
	/**
	 * 取缓存
	 * @param string $key 缓存名称
	 */
	function fetch($key) 
	{
		return $this->connection->get($key);
	}
	/**
	 * 立即删除缓存
	 * @param string $key 缓存名称
	 */
	function delete($key) 
	{
		return $this->connection->delete($key);
	}
	/**
	 * 添加memcache server
	 * @param string $host 主机名成
	 * @param int $port 端口
	 * @param int $weight 权重
	 */
	function addServer($host, $port=11211, $weight=10) 
	{
		return $this->connection->addServer($host,$port,true,$weight);
	}
	/**
	 * 刷新memcache的缓存，所有的项目
	 */
	public function flush()
	{
		return $this->connection->flush();
	}
	
	function __destruct()
	{
		// 关闭缓存
		$this->connection->close();
	}

}



//abstract class Cache_Abstract {
//	abstract function fetch($key);
//	abstract function store($key, $data, $ttl);
//	abstract function delete($key);
//}
//
//class Cache_APC extends Cache_Abstract {
//	
//	function fetch($key) {
//		return apc_fetch($key);
//	}
//	
//	function store($key,$data,$ttl){
//		return apc_store($key,$data,$ttl);
//	}
//	
//	function delete($key) {
//		return apc_delete($key);
//	}
//}
//
//
//}

/* End of file mymemcache.class.php */
/* Location: mymemcache.class.php */